home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk122 / popup / source / myfunctions.a < prev    next >
Text File  |  1995-03-19  |  1KB  |  60 lines

  1.            xdef      @MySetMenuStrip
  2.            xdef      @MyClearMenuStrip
  3.            xdef      @MyOnMenu
  4.            xdef      @MyOffMenu
  5.            xdef      @Mystrlen
  6.  
  7.            xref      _OldSetMenuStrip
  8.            xref      _OldClearMenuStrip
  9.            xref      _OldOffMenu
  10.            xref      _OldOnMenu
  11.            xref      _PopUpSemaphore
  12.  
  13. _LVOObtainSemaphore  EQU  -$0234
  14. _LVOReleaseSemaphore EQU  -$023a
  15. AbsExecBase    EQU      4
  16.  
  17.            section      text,code
  18.  
  19. @MySetMenuStrip:
  20.            MOVEM.L      A2/A6,-(SP)
  21.            MOVEA.L      _OldSetMenuStrip,A2
  22.            BRA.B      CallOldFunction
  23.  
  24. @MyClearMenuStrip:
  25.            MOVEM.L      A2/A6,-(SP)
  26.            MOVEA.L      _OldClearMenuStrip,A2
  27.            BRA.B      CallOldFunction
  28.  
  29. @MyOnMenu:     MOVEM.L      A2/A6,-(SP)
  30.            MOVEA.L      _OldOnMenu,A2
  31.            BRA.B      CallOldFunction
  32.  
  33. @MyOffMenu:    MOVEM.L      A2/A6,-(SP)
  34.            MOVEA.L      _OldOffMenu,A2
  35.  
  36. * ------------ Obtain semaphore and then call the intuition function.
  37. CallOldFunction:
  38.            MOVEM.L      D0/A0-A1/A6,-(SP)
  39.            LEA      _PopUpSemaphore,A0
  40.            MOVE.L      AbsExecBase.W,A6
  41.            JSR      _LVOObtainSemaphore(A6)
  42.            MOVEM.L      (SP)+,D0/A0-A1/A6
  43.            JSR      (A2)
  44.            LEA      _PopUpSemaphore,A0
  45.            MOVE.L      AbsExecBase.W,A6
  46.            JSR      _LVOReleaseSemaphore(A6)
  47.            MOVEM.L      (SP)+,A2/A6
  48.            RTS
  49.  
  50. * ------------ This is the shortest strlen (I think).
  51. @Mystrlen:     MOVEQ.L      #-1,D0
  52. 1$:           ADDQ.L      #1,D0
  53.            TST.B      (A0)+
  54.            BNE.B      1$
  55.            RTS
  56.  
  57.            END
  58.  
  59.  
  60.